package com.kamistoat.ruoyi.ruoyicommonsecurity.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 权限认证注解。
 * 被注释的方法/类 必须满足声明的权限要求才能调用/访问
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface RequiresPermissions {
    /**
     * 所需拥有的权限，以String数组的形式保存，使用该注解时使用逗号链接多个权限
     */
    String[] value() default {};

    /**
     * value() 中权限的关系。默认是AND关系
     */
    Logical logical() default Logical.AND;
}
